<?php
// 这是系统自动生成的公共文件

// 封装一些adminapi应用的公共函数
// 密码加密、响应信息、递归处理、发送请求等等

// api的六要素
// 资源路径、请求方式（HTTP动词）、过滤信息（请求参数）（前端、完整的）
// 状态码、错误信息、返回结果（服务端的） 统一的响应的格式


/**
 * 后端管理员密码加密的方法
 */
if (!function_exists('encrypt_password')) {
    /**
     * 密码加密 加盐
     */
    function encrypt_password($password){
        $rand = "2006A";
        return md5($rand.$password.$rand);
    }
}

// 统一响应成功格式的方法
if (!function_exists('success')) {
    /**
     * @param $data *返回结果
     * @param $msg * 错误信息
     * @param $code * 状态码
     */
    function success($data=[],$msg='ok',$code=200) {
            return json([
                'code' => $code,
                'msg' => $msg,
                'data' => $data
            ]);
    }
}

// 统一响应失败格式的方法
if (!function_exists('error')) {
    /**
     * @param $data *返回结果
     * @param $msg * 错误信息
     * @param $code * 状态码
     */
    function error($msg='参数错误', $code=2001, $data=[]) {
        return json([
            'code' => $code,
            'msg' => $msg,
            'data' => $data
        ]);
    }
}


/**
 * 类型添加时属性以及规格信息的过滤
 */

if (!function_exists('array_filters')) {
    /**
     * 信息的过滤
     * @param $data
     */
    function array_filters($data){
        foreach ($data as $key => $value) {
            # 判断规格名是否为空
            if (empty(trim($value['name']))) {
                # 为空
//                    unset($value);// 错误的 仅仅只销毁$value变量而已、并没有改变数组中的元素
                unset($data[$key]);
                continue;
            }
            # 判断规格信息信息
            foreach ($data[$key]['value'] as $k=>$v) {
                if (empty(trim($v))) {
                    unset($data[$key]['value'][$k]);//销毁规格值为空的元素
                }
            }
            # 过滤规格值之后、如果没有一个规格值、当前规格信息舍弃
            if (count($data[$key]['value']) == 0) {
                unset($data[$key]);
            }
        }
        return $data;

    }
}
